package cwb.utils;

import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;


/**
 * <p>ClassName: AesUtil</p>
 * <p>Description: Aes加密解密工具</p>
 * <p>Date: 2021/3/25</p>
 * @author Ezio.Auditore
 */
public class AesUtil {

    /**
     * <p>Field : Aes 加密解密秘钥</p>
     */
    private final static String KEY = "F5gzZ0E/WUgoTkoYdVen4Q==";


    /**
     * <p> 获取AES对象 </p>
     *
     * @return : cn.hutool.crypto.symmetric.AES
     * @date: 2021/3/25 13:21
     **/
    private static AES init() {
        return SecureUtil.aes(KEY.getBytes());
    }


    /**
     * <p> 加密 </p>
     *
     * @param text :  加密的内容
     * @return : java.lang.String
     * @date: 2021/3/25 13:41
     **/
    public static String encrypt(String text,String salt) {
        return text != null ? Base64.encode(SecureUtil.aes(salt.getBytes()).encrypt(text)) : null;
    }

    /**
     * <p> 解密 </p>
     *
     * @param text :解密类容
     * @return : java.lang.String
     * @date: 2021/3/25 13:44
     **/
    public static String decrypt(String text,String salt) {
        return text != null ? SecureUtil.aes(salt.getBytes()).decryptStr(Base64.decode(text)) : null;
    }

    /**
     * 密码根据salt加密解密
     * @param args
     */
    public static void main(String[] args) {
        //密码加密
        //System.out.println(encrypt("123456","loM/yQB1CF2QI2GB8DkjJg=="));
        //密码解密
        System.out.println(decrypt("av5cFOplfQBm7J2PceXAWQ==","l+r7zj8PglTmWwpwLsg3sg=="));
    }

}